this._overviewShowingId =
Main.overview.connect('showing',
Lang.bind(this, function() {
- this._onRestacked();
for (let w = 0; w < this._workspaces.length; w++)
this._workspaces[w].zoomToOverview();
}));
this._switchWorkspaceNotifyId =
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._activeWorkspaceChanged));
- this._restackedNotifyId =
- global.screen.connect('restacked',
- Lang.bind(this, this._onRestacked));
this._itemDragBeginId = Main.overview.connect('item-drag-begin',
Lang.bind(this, this._dragBegin));
return this._workspaces[0].scale;
},
- _onRestacked: function() {
- let stack = global.get_window_actors();
- let stackIndices = {};
-
- for (let i = 0; i < stack.length; i++) {
- // Use the stable sequence for an integer to use as a hash key
- stackIndices[stack[i].get_meta_window().get_stable_sequence()] = i;
- }
-
+ syncStacking: function(stackIndices) {
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].syncStacking(stackIndices);
},
this._scrollAdjustment.run_dispose();
Main.overview.disconnect(this._overviewShowingId);
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
- global.screen.disconnect(this._restackedNotifyId);
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
global.screen.connect('notify::n-workspaces',
Lang.bind(this, this._workspacesChanged));
+ this._restackedNotifyId =
+ global.screen.connect('restacked',
+ Lang.bind(this, this._onRestacked));
+
if (this._itemDragBeginId == 0)
this._itemDragBeginId = Main.overview.connect('item-drag-begin',
Lang.bind(this, this._dragBegin));
if (this._windowDragEndId == 0)
this._windowDragEndId = Main.overview.connect('window-drag-end',
Lang.bind(this, this._dragEnd));
+
+ this._onRestacked();
},
hide: function() {
global.screen.disconnect(this._nWorkspacesNotifyId);
this._nWorkspacesNotifyId = 0;
}
+ if (this._restackedNotifyId > 0){
+ global.screen.disconnect(this._restackedNotifyId);
+ this._restackedNotifyId = 0;
+ }
if (this._itemDragBeginId > 0) {
Main.overview.disconnect(this._itemDragBeginId);
this._itemDragBeginId = 0;
}
},
+ _onRestacked: function() {
+ let stack = global.get_window_actors();
+ let stackIndices = {};
+
+ for (let i = 0; i < stack.length; i++) {
+ // Use the stable sequence for an integer to use as a hash key
+ stackIndices[stack[i].get_meta_window().get_stable_sequence()] = i;
+ }
+
+ this.workspacesView.syncStacking(stackIndices);
+ },
+
_workspacesChanged: function() {
let oldNumWorkspaces = this._workspaces.length;
let newNumWorkspaces = global.screen.n_workspaces;